Basic Camera Movement (ArcRotate, FreeCamera) গাইড ও নোট

Web Development - ব্যাবিলনজেএস (BabylonJS) - BabylonJS বেসিকস
344

BabylonJS-এ ক্যামেরা ব্যবহারের দুটি প্রধান পদ্ধতি হলো ArcRotateCamera এবং FreeCamera। এই দুটি ক্যামেরা ব্যবহার করে আপনি 3D দৃশ্যের মধ্যে কিভাবে মুভ করবেন, সেটি নিয়ন্ত্রণ করতে পারেন। এখানে আমরা এই দুটি ক্যামেরার মৌলিক মুভমেন্টের পদ্ধতি সম্পর্কে আলোচনা করব।


ArcRotateCamera

ArcRotateCamera একটি বিশেষ ধরনের ক্যামেরা যা 3D দৃশ্যের চারপাশে ঘুরে দেখানোর জন্য ব্যবহৃত হয়। এটি মূলত একটি "অর্ক" বা বৃত্তাকার গতিতে কাজ করে, যেখানে ক্যামেরা একটি নির্দিষ্ট পয়েন্টের চারপাশে ঘুরতে থাকে। এর মাধ্যমে ব্যবহারকারী খুব সহজে 3D দৃশ্যের মধ্যে অবজেক্ট বা বস্তুর চারপাশে ঘুরে দেখতে পারেন।

ArcRotateCamera সেটআপ

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ArcRotateCamera Example</title>
    <script src="https://cdn.babylonjs.com/babylon.js"></script>
</head>
<body>
    <canvas id="renderCanvas" style="width: 100%; height: 100%"></canvas>
    <script>
        var canvas = document.getElementById("renderCanvas");
        var engine = new BABYLON.Engine(canvas, true);
        var scene = new BABYLON.Scene(engine);

        // ArcRotateCamera তৈরি করা
        var camera = new BABYLON.ArcRotateCamera("camera1", Math.PI / 2, Math.PI / 2, 10, BABYLON.Vector3.Zero(), scene);
        camera.attachControl(canvas, true); // ক্যামেরা কন্ট্রোল যুক্ত করা

        // আলোর উৎস তৈরি করা
        var light = new BABYLON.HemisphericLight("light1", BABYLON.Vector3.Up(), scene);

        // একটি বক্স তৈরি করা
        var box = BABYLON.MeshBuilder.CreateBox("box", {size: 2}, scene);

        // দৃশ্য রেন্ডার করা
        engine.runRenderLoop(function () {
            scene.render();
        });

        window.addEventListener("resize", function () {
            engine.resize();
        });
    </script>
</body>
</html>

কোডের ব্যাখ্যা:

  • ArcRotateCamera: এখানে ক্যামেরাটি ArcRotateCamera টাইপের। এটি নির্দিষ্ট একটি পয়েন্ট (এখানে BABYLON.Vector3.Zero()—অর্থাৎ (0,0,0)) এর চারপাশে ঘুরে চলবে। ক্যামেরার অবস্থান কোণ এবং দূরত্ব (angle and radius) দিয়ে কনফিগার করা হয়েছে।
  • attachControl: এটি ক্যামেরা কন্ট্রোল যুক্ত করে, যা মাউস বা টাচ ইন্টারফেসের মাধ্যমে ক্যামেরার পজিশন পরিবর্তন করতে দেয়।

এই ক্যামেরা মুভমেন্টের মাধ্যমে, ব্যবহারকারী মাউস দিয়ে 3D দৃশ্যের মধ্যে ক্যামেরাকে ঘুরিয়ে দেখতে পারবেন।


FreeCamera

FreeCamera একটি ফ্রি-মুভিং ক্যামেরা যা আপনার নির্দেশে 3D দৃশ্যে যেকোনো জায়গায় যেতে পারে। এটি একটি "মুক্ত" ক্যামেরা, যার কোনো নির্দিষ্ট পয়েন্টের চারপাশে ঘুরতে বাধ্য নয়। আপনি ওয়াকিং বা ফ্লাইং মুভমেন্টের মতো এই ক্যামেরাকে নিয়ন্ত্রণ করতে পারেন।

FreeCamera সেটআপ

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>FreeCamera Example</title>
    <script src="https://cdn.babylonjs.com/babylon.js"></script>
</head>
<body>
    <canvas id="renderCanvas" style="width: 100%; height: 100%"></canvas>
    <script>
        var canvas = document.getElementById("renderCanvas");
        var engine = new BABYLON.Engine(canvas, true);
        var scene = new BABYLON.Scene(engine);

        // FreeCamera তৈরি করা
        var camera = new BABYLON.FreeCamera("camera1", new BABYLON.Vector3(0, 5, -10), scene);
        camera.attachControl(canvas, true); // ক্যামেরা কন্ট্রোল যুক্ত করা

        // আলোর উৎস তৈরি করা
        var light = new BABYLON.HemisphericLight("light1", BABYLON.Vector3.Up(), scene);

        // একটি বক্স তৈরি করা
        var box = BABYLON.MeshBuilder.CreateBox("box", {size: 2}, scene);

        // দৃশ্য রেন্ডার করা
        engine.runRenderLoop(function () {
            scene.render();
        });

        window.addEventListener("resize", function () {
            engine.resize();
        });
    </script>
</body>
</html>

কোডের ব্যাখ্যা:

  • FreeCamera: এখানে ক্যামেরাটি FreeCamera টাইপের, যা সোজা একটি নির্দিষ্ট পয়েন্ট থেকে (0, 5, -10) থেকে শুরু হয়। এটি 3D দৃশ্যে যেকোনো জায়গায় যেতে পারে।
  • attachControl: এই ক্যামেরার কন্ট্রোলও attachControl মেথডের মাধ্যমে যুক্ত করা হয়েছে, যা ব্যবহারকারীকে কিবোর্ড এবং মাউস দিয়ে ক্যামেরার পজিশন নিয়ন্ত্রণ করতে সহায়তা করবে।

FreeCamera দিয়ে আপনি ওয়াকিং বা ফ্লাইং স্টাইলে 3D দৃশ্যে মুভ করতে পারবেন, যা গেম ডেভেলপমেন্টে বেশ উপকারী।


ArcRotateCamera vs FreeCamera

বৈশিষ্ট্যArcRotateCameraFreeCamera
মুভমেন্টনির্দিষ্ট একটি পয়েন্টের চারপাশে ঘুরে মুভ করেযেকোনো স্থানে যেতে পারে, যেমন ওয়াকিং বা ফ্লাইং
ব্যবহারসাধারণত অবজেক্ট বা দৃশ্যের চারপাশে ঘুরে দেখানোর জন্যপুরো দৃশ্যে স্বাধীনভাবে মুভ করার জন্য
কন্ট্রোলমাউস বা টাচ দিয়ে ক্যামেরা ঘোরানো যায়কিবোর্ড বা মাউস দিয়ে ক্যামেরা গতিশীল করা যায়
উদাহরণ3D মডেল বা দৃশ্য ঘুরিয়ে দেখাগেম বা নেভিগেশন সিস্টেমে ব্যবহৃত

সারাংশ

  • ArcRotateCamera: 3D দৃশ্যের চারপাশে ঘুরে দেখানোর জন্য ব্যবহৃত হয়। এটি একটি নির্দিষ্ট পয়েন্টের চারপাশে ক্যামেরা ঘুরাতে দেয়।
  • FreeCamera: এটি একটি ফ্রি-মুভিং ক্যামেরা, যা ব্যবহারকারীর নিয়ন্ত্রণে 3D দৃশ্যে যেকোনো স্থানে যেতে পারে।

এই দুটি ক্যামেরা মুভমেন্ট আপনার 3D প্রজেক্টের ভিউ নিয়ন্ত্রণ করতে সাহায্য করবে।

Content added By
Promotion

Are you sure to start over?

Loading...